home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
data
/
dora
/
doradnld.plp
< prev
next >
Wrap
Text File
|
1993-11-30
|
4KB
|
148 lines
%DLIBDOWN{
[forum,libno,dataname,docfile,datafile]
%otto3 {
SNDMSG({okasi_f.snd});
write(UP2|{_mopdlib.rsv},{保留;}|linebuf);
wait(Wtime2,,{,?,Q},{type({Q\n})}
,{,H,nn,?,0},{type({0|Q\n})});im({No})
};
footnote(libno|{番ライブラリの}|dataname|{をダウンロードします});
type({\n});
wait(Wtime5,{AbortOff({ホストの反応が鈍いよぉ~\n})},{,?,}
,{
case (forum=NET,
{Yes},{type({F#}|libno|{|D\n})},
{No},{type({F#}|libno|{|}|forum|{|D\n})}
);
});
loop ({
wait({3},{im({Yes})}
,{このボードではダウンロードは出来ません。},
{display({ダウンロードが禁止されている為、次の処理を行います\n});
SNDMSG({okasi_f.snd});
wait(Wtime2,,{,H,nn,?,0},{type({0|Q\n})});im({No})
}
,{そのボードには入れません},{otto3}
,{ボードが見つかりません},{otto3}
,{パスワードが違います},{otto3}
,{DOWNLOAD},
{
wait(Wtime2,,{[RET]},{type(dataname|{\n})});
loop ({
wait ({3},{im({Yes})}
,{ファイルの補足説明を表示しますか},
{
type({Y\n});dispoff(!DEBUG);mkdir2(@body(docfile,,{\}));
dispoff({No});DOWNCHECK;receive(docfile);
wait(Wtime2,,{Protocol},{DOWNSTOP;type({Y\n})});im({No})
}
,{Protocol},{type({Y\n});im({No})}
);
});
dispoff(!DEBUG);mkdir2(@body(datafile,,{\}));dispoff({No});
wait ({5}, {
DOWNCHECK;receivey(datafile);type({\n});
SNDMSG({owata_f.snd});CHeck:={No};
wait(,,{,H,?,Q},{wait(1);type({Q\n})},
{,H,nn,?,0},{wait(1);type({0|Q\n})});
}
,{YMODEM でダウンロードします。},
{
DOWNCHECK;receivey(datafile);type({\n});
SNDMSG({owata_f.snd});CHeck:={No};
wait(WtimeD,{otto3},{,H,?,Q},{wait(1);type({Q\n})},
{,H,nn,?,0},{wait(1);type({0|Q\n})})
}
,{ダウンロードに失敗しました},{otto3}
,{ボードの指定が違います},
{display({データ番号が違うため次の処理を行います\n});otto3}
)
});
});
};
%PROFDOWN{
[uid]
var UID[90];
footnote(uid|{の}|{プロフィール情報をダウンロードします});
dispoff(!DEBUG);mkdir2(LOG2|{profile});dispoff({No});
UID:=uid;
loop ({
%id1 @head(UID,{,});
UID:=@body(UID,{,});
dispoff(!DEBUG);
command({del }|LOG2|{profile\}|id1|{.prf});
dispoff({No});DOWNCHECK;
receive(LOG2|{profile\}|id1|{.prf});
type({P|P}|id1);type({\n});
loop ({
wait({3},{im({Yes})},
{) >},{type({0|Q\n});wait(2);im({No})});
});
DOWNSTOP;
case(UID,{},{im({No})},,{im({Yes})});
});
};
/* データライブラリからの自動ダウンロード処理 */
%AUTOdwn1{
case (@head(linebuf,{=}),
{forum}, /* ファイルボードからのダウンロード */
{DLIBDOWN(
@tail(linebuf,{forum=},{;}),
@tail(linebuf,{libno=},{;}),
@tail(linebuf,{dataname=},{;}),
@tail(linebuf,{docfile=},{;}),
@tail(linebuf,{datafile=},{;}));
im({Yes}); /* 終わったら次の行を読む */
},
{profile}, /* プロフィール情報のダウンロード */
{
PROFDOWN(@tail(linebuf,{profile=},{;}));
im({Yes}); /* 終わったら次の行を読む */
},
{},{im({No})}, /* 空文字列なら終了 */
,{im({Yes})} /* それ以外なら次の行を読む */
)
};
%AUTOdown{
[file]
case (@filechk(file),
{Yes},
{
line:=0;
loop ({
line:=line+1;
linebuf:={};
linebuf:=@read(file,line,1);
case (@getchar(linebuf,1,5)={保留;},
{Yes},
{write(UP2|{_mopdlib.rsv},linebuf);im({Yes})},
{No},
{AUTOdwn1},
);
});
AUTOdwn1;
},
{No},
{
SNDMSG({okasi_f.snd});
display({\n}|file|{制御ファイルがありません\n});
});
};
/* ダウンロード制御ファイル指定の有無の判定処理 */
%AUTODNLD{
footnote({自動ダウンロード処理を行います});
case (@filechk(UP2|{_mopdlib.ctl}),
{Yes},
{
AUTOdown(UP2|{_mopdlib.ctl});
delfile(UP2|{_mopdlib.bak});
renname(UP2|{_mopdlib.ctl},{_mopdlib.bak_});
case (@filechk(UP2|{_mopdlib.rsv}),
{Yes},
{renname(UP2|{_mopdlib.rsv},{_mopdlib.ctl})}
);
});
};
var line [3]; /* ダウンロード制御ファイル行カウンタ */
var linebuf [258]; /* ダウンロード制御文バッファ */
DOWNSTART;CHeck:={Yes};AUTODNLD;DOWNSTOP;